#ifndef UPLOADVIDEOPAGE_H
#define UPLOADVIDEOPAGE_H

#include <QWidget>
#include "mpv/mpvplayer.h"

namespace Ui {
class UploadVideoPage;
}

class UploadVideoPage : public QWidget
{
    Q_OBJECT

public:
    explicit UploadVideoPage(QWidget *parent = nullptr);
    ~UploadVideoPage();

    // 设置上传文件的名称
    void setVideoTittle(const QString& videoPath);
private:
    // 将kind下标签以按钮形式展⽰在界⾯上
    void addTagsByKind(const QString& kind);

    // 上传视频封面图
    void uploadPhoto(const QString& photoPath);

    //  重置界面数据
    void resetPage();

private slots:
    // 提交按钮槽函数
    void onCommitBtnClicked();
    // 标题槽函数
    void onLineEditTextChanged(const QString& text);
    // 简介槽函数
    void onPlainEditTextChanged();
    // 切换封面槽函数
    void onChangeButtonClicked();
    // QComoBox中分类选择改变槽函数
    void onUpdateTags(const QString &kind);
    // 上传视频完成
    void onUploadVideoDone(const QString& videoId);
    // 获取视频总时长完成
    void getDurationDone(int64_t duration);


signals:
    void switchMySelfWidgetPage(int pageIndex);

private:
    Ui::UploadVideoPage *ui;

    MpvPlayer* mpvPlayer = nullptr;

    // 上传视频
    QString videoPath;
    QString videoFileId;
    bool isUploadVideoOK = false;
    // 上传视频封面
    QString coverImageId;
    bool isUploadPhotoOK = false;
    // 视频总时长
    int64_t duration;
    bool isDurationOK = false;
};

#endif // UPLOADVIDEOPAGE_H
